MVC-framework on PHP
Official Docs Руководство на русском krajee.comУстановка | |
---|---|
1-1. XAMMP
Скачать установочный файл с оф. сайта
link
|
sudo su // установка от рута ./xampp-linux-x64-7.2.5-0-installer.run // запуск менеджера sudo su cd ~/../../opt/lampp && ./manager-linux-x64.run
|
1-1. XAMMP - Virtual Hosts |
Включить поддержку вирт. хостов/opt/lampp/etc/httpd.conf # Include etc/extra/httpd-vhosts.conf Добавление вирт. хоста в систему /etc/hosts 127.0.0.1 some-site.loc Добавление вирт. хоста в XAMPP /opt/lampp/etc/extra/httpd-vhosts.conf <VirtualHost *:80>
|
2-1. Composer |
curl -s http://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo composer global require "fxp/composer-asset-plugin:~1.3" |
2-2. Composer - Удаление |
delete ~/home/user/.composer delete ~/home/user/.config/composer delete ~/usr/bin/composer sudo apt-get remove composer sudo apt-get remove --auto-remove composer sudo apt-get purge composer sudo apt-get purge --auto-remove composer |
3-1. Установка Yii2 - I способ Composer |
cd ~/../../opt/lampp/htdocs
sudo composer create-project yiisoft/yii2-app-advanced yii2
cd yii2
sudo php init (0, yes) http://localhost/yii2/frontend/web/
|
3-2. Установка Yii2 - II способ Архив |
Скачать архив advanced c https://www.yiiframework.com/download Распаковать его в: ~/../../opt/lampp/htdocs/project-name Инициализировать проект sudo php init Запустить сервер |
Controllers (контроллеры, экшены) | ||
---|---|---|
Роутинг |
/index.php?r=site%2Fabout
|
site - название контроллера в /frontend/controllers/SiteController.php about - название вида в директории site /frontend/views/site/about.php Название Класса (КлассController.php в /frontend/controllers/) - название директории в папке /frontend/views/класс Название экшена (actionНазвание) - название файла в директоии /frontend/views/класс/название Если контроллер вложен в какую-либо директорию, например, /frontend/controllers/admin/UserController, то вложен должен быть и вид (/frontend/views/admin/user/название_экшена). Тогда url будет (/index.php?r=admin/user%2Fsome) |
Views (виды) | ||
Шаблоны страниц |
frontend/views/
|
|
Структура | ||
Подключение БД | common/config/main-local.php |
dbname="..."
|
Минификация скриптов | frontend/config/main.php |
'enableMinify' => false || !YII_DEBUG
|
Директория запуска | frontend/web | |
Мета-данные в head | frontend/config/params.php | |
Всё, что загрузили с админки | frontend/web/upload | В основном изображения |
Главный файл запуска | frontend/web/index.php | Его не трогать, в нём настроки и подключения |
Вставить дату | Если нужно динамически менять год |
<?= date('Y') ?>
|
Страницы | frontend/views/ | |
Виджеты, попапы, инклуды | frontend/components/ | |
Скелет всех страниц (header, footer, pop-ups) | frontend/views/layouts/main.php | |
Скрипты | frontend/assets/AppAsset.php | |
Debug-режим | frontend/web/index.php |
Для отключения нужно поменять true => false,
dev => env defined('YII_DEBUG') or define('YII_DEBUG',
true); defined('YII_ENV') or define('YII_ENV', '
dev');
|
Настройки | frontend/config/main.php |
'assetManager' Компилятор scss |
Путь в корневую директорию | frontend/web/ |
include_once
$_SERVER['DOCUMENT_ROOT'] . "blocks/block1.php";
|
Путь в корневую директорию | frontend/web/ |
include_once
$_SERVER['DOCUMENT_ROOT'] . "blocks/block1.php";
|
Контроллеры для запуска страниц | frontend/web/FormController.php |
|
Если проект на Yii2 скачен через
git, то нужно проект инициализировать из корневой директории, выполнив команду в php-консоли
init
и выбрать
[0] Development режим, потом нажать
yes для генерации файлов
$this->registerJsFile("js/jquery.some-plugin.min.js", ['depends' => 'yii\web\YiiAsset']);
$this->registerCssFile("css/come-styles.min.css", ['depends' => 'yii\web\YiiAsset']);
1. Создаём новую страницу
somepage.php с заголовком в директорию
frontend/views/
<? $this->title="Some page" ?>
2. Создаём контроллер для новой страницы SomepageController.php в директории frontend/controllers/, название в camel-case как название новой страницы
<?php
namespace frontend\controllers;
use common\models\Coach;
use common\models\Travel;
use common\models\TravelReview;
use Yii;
use common\models\LoginForm;
use frontend\models\PasswordResetRequestForm;
use frontend\models\ResetPasswordForm;
use frontend\models\SignupForm;
use frontend\models\ContactForm;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
/**
* Site controller
*/
class SomepageController extends \app\components\SeoController
{
public function actionIndex(){
return $this->render('/somepage');
}
}
3. После этого можно заходить на данную страницу site.loc/somepage